Barcode symbols provide a fast and accurate means of representing information about an object. Decoding or reading a barcode is accomplished by translating the patterns of the barcode, such as bars and spaces in linear barcodes or blocks or other features in a 2D barcode, into the corresponding numbers or characters. Barcodes are widely used for encoding information and tracking purposes in retail, shipping and industrial settings.
Historically, linear barcodes were optimized to be read by a laser scanner that sweeps a beam of light across the barcode, reading a slice of the pattern of the barcode. More recently, imagers (using image sensors such as CMOS or CCD devices) that capture a greyscale image have been used to read barcodes since they do not require moving parts like laser scanners and are also able to read 2D bar codes. However, image sensor technology is largely driven by the mass consumer camera market, rather than by barcode readers, where the trend is towards color image sensors with continually increasing resolutions and sensitivities delivered at lower costs. It may be advantageous for barcode reader technology to incorporate these color image sensors.
Often, only monochrome barcodes, typically black and white, are used due to their robustness in uncontrolled operating environments. These monochrome barcodes are typically printed on consumer products as a white rectangle with a black barcode thereon and can interfere with the design aesthetics of the packaging.
While color barcodes could be used to increase the aesthetic appeal, using a greater multitude of colors introduces errors that can negatively affect the robustness of barcode reading. Color barcodes pose difficult problems for either designing readable color barcodes or robust barcode readers that can decode these color barcodes. When the colors used for the features of the barcode and the background have a similar brightness, traditional greyscale-based barcode decoders and/or decoding techniques that rely on the brightness differences are not able to accurately decode these color barcodes.
Current barcode scanners or readers are designed for use with greyscale images. Designing barcode decoding algorithms that process color images directly can be computationally intensive and expensive to develop, in terms of labor, time, testing and validation.